热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

萤火虫|系数_微电网优化基于matlab萤火虫算法求解微电网优化问题含Matlab源码2146期

篇首语:本文由编程笔记#小编为大家整理,主要介绍了微电网优化基于matlab萤火虫算法求解微电网优化问题含Matlab源码2146期相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了微电网优化基于matlab萤火虫算法求解微电网优化问题含Matlab源码 2146期相关的知识,希望对你有一定的参考价值。



一、萤火虫算法求解微电网经济优化问题简介

利用迭代搜索法、剔除劣势策略法、逆推归纳法和最大最小优化方法[7,8,9]等均可实现博弈均衡点的求解。但当维数较大时, 这些方法可能存在搜索速度、路径和精度上的问题。萤火虫优化算法[10]由于其原理简单、参数少、易于实现、具有较强的全局寻优能力和收敛能力等优点, 已成功地在路径规划、经济调度等领域[11,12,13]得到应用。

1 萤火虫优化算法数学描述
亮度和吸引度是萤火虫优化算法中的两个主要因素, 分别定义如下。
定义1萤火虫的亮度I定义为:

式中:I0为最大亮度, 即萤火虫自身的亮度;γ为介质的光吸收系数;rij为萤火虫i和j之间的笛卡尔距离。
若发光亮度相同, 则萤火虫各自随机移动。
定义2萤火虫的吸引度β与亮度相关, 定义为:

式中:β0为最大吸引度, 即萤火虫自身的吸引度。

定义3萤火虫i被萤火虫j吸引的位置更新公式为:

式中:xi和xj分别为萤火虫i和j所处的位置;α和r均为扰动随机参数, 用于加大搜索区域, 避免过早陷入局部最优。


二、部分源代码

% 这是 2D 函数的演示; 对于更高的维度,%
% 你应该使用 fa_ndim.m 或 fa_mincon.m %
% 参数选择:
% Gamma 应该与尺度相关联。 否则,FA %
% 效率将显着降低,因为 %
% beta 项可能太小。 %
% 同理,alpha 也应该和 scale 联系起来,%
% 步数不宜过大或过小,通常 %
% 步长约为域大小的 1/10 到 1/100。 %
% 另外,alpha 应该逐渐降低 %
%在迭代 t 期间使用 alpha=alpha_0 delta^t 的百分比。 %
% 通常,delta=0.9 到 0.99 将是一个不错的选择。 %
% ======================================================== %

function [best]=firefly_simple(instr)
% n=萤火虫数量
% MaxGeneration=伪时间步数
if nargin<1, instr&#61;[30 100]; end
n&#61;instr(1); MaxGeneration&#61;instr(2);
% Show info
help firefly_simple.m
rand(‘state’,0); % 重置随机发生器
% ------ 四峰功能---------------------
str1&#61;‘exp(-(x-4)2-(y-4)2)&#43;exp(-(x&#43;4)2-(y-4)2)’;
str2&#61;‘&#43;2exp(-x2-(y&#43;4)2)&#43;2exp(-x2-y2)’;
funstr&#61;‘exp(-(x-4)2-(y-4)2)&#43;exp(-(x&#43;4)2-(y-4)2)&#43;2exp(-x2-(y&#43;4)2)&#43;2exp(-x2-y2)’;
% 转换为内联函数
f&#61;vectorize(inline(funstr));
% range&#61;[xmin xmax ymin ymax];
range&#61;[-10 10 -10 10];

% ------------------------------------------------
alpha&#61;0.2; % Randomness 0–1 (highly random)
gamma&#61;1.0; % Absorption coefficient
delta&#61;0.97; % Randomness reduction (similar to
% an annealing schedule)
% ------------------------------------------------
% 网格值仅用于显示
Ngrid&#61;100;
dx&#61;(range(2)-range(1))/Ngrid;
dy&#61;(range(4)-range(3))/Ngrid;
[x,y]&#61;meshgrid(range(1):dx:range(2),…
range(3):dy:range(4));
z&#61;f(x,y);
% 显示目标函数的形状
figure(1); surfc(x,y,z);

% ------------------------------------------------
% 生成 n 只萤火虫的初始位置
[xn,yn,Lightn]&#61;init_ffa(n,range);
% 用图形显示萤火虫的路径
% 待优化函数的轮廓
figure(2);
% 迭代或伪时间行进
for i&#61;1:MaxGeneration, %%%%% 开始迭代
%显示函数的轮廓
contour(x,y,z,15); hold on;
% 评估新的解决方案
zn&#61;f(xn,yn);

%按光照强度对萤火虫进行排名
[Lightn,Index]&#61;sort(zn);
xn&#61;xn(Index); yn&#61;yn(Index);
xo&#61;xn; yo&#61;yn; Lighto&#61;Lightn;
% 追踪所有漫游萤火虫的路径
plot(xn,yn,‘.’,‘markersize’,10,‘markerfacecolor’,‘g’);
% 将所有萤火虫移动到更好的位置
[xn,yn]&#61;ffa_move(xn,yn,Lightn,xo,yo,Lighto,alpha,gamma,range);
drawnow;
% 使用“hold on”显示萤火虫的路径
hold off;


三、运行结果



四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 王晶,王宗礼,陈骏宇,王雪锋,王肖杰,田磊.基于萤火虫优化算法的微网源—荷博弈模型及分析[J].电力系统自动化. 2014,38(21)

3 备注
简介此部分摘自互联网&#xff0c;仅供参考&#xff0c;若侵权&#xff0c;联系删除


推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
author-avatar
地平线1232502881827
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有